package com.yxx.business.entity;

import java.math.BigDecimal;
import com.yxx.common.annotation.Excel;
import com.yxx.common.core.domain.BaseEditDtoEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.experimental.Accessors;
import lombok.*;

import javax.validation.constraints.NotNull;

/**
 * 设备信息EditDto对象 tb_equipment_info
 *
 * @author yxx
 * @date 2025-08-11
 */
@Schema(description = "设备信息编辑实体")
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@Builder
@Data
public class TbEquipmentInfoEditDto extends BaseEditDtoEntity {

    private static final long serialVersionUID = 1L;

    @Schema(description = "设备信息ID")
    private Long equipmentInfoId;

    @Schema(description = "工程ID")
    private Long engineeringId;

    @Schema(description = "设备ID")
    @NotNull(message = "设备ID不能为空")
    private Long equipmentId;

    @Schema(description = "设备名称")
    @NotNull(message = "设备名称不能为空")
    private String equipmentName;

    @Schema(description = "设备种类")
    private String equipmentType;

    @Schema(description = "配置表单(设备列表，运输列表，建材列表，能源列表，汇碳列表)")
    private String equipmentForm;

    @Schema(description = "单位(kgCO2/台班)")
    @Excel(name = "单位(kgCO2/台班)")
    private String unit;

    @Schema(description = "数量")
    private BigDecimal shiftCount;

    @Schema(description = "碳排放因子(kgCO2/台班)")
    @NotNull(message = "碳排放因子(kgCO2/台班)不能为空")
    private BigDecimal carbonFactor;

    @Schema(description = "碳排放量(kgCO2)")
    @NotNull(message = "碳排放量(kgCO2)不能为空")
    private BigDecimal carbonEmission;

    @Schema(description = "使用阶段")
    @NotNull(message = "使用阶段不能为空")
    private String usagePhase;

    @Schema(description = "更新者id")
    private Long createById;

    @Schema(description = "更新者id")
    private Long updateById;

}
